Since the invention of transistors, digital circuits have revolutionized not only the electronics industry, but all walks of life which use or depend upon an electronic switching function for control and/or operation of an electrical circuit. The transistor, in digital applications, essentially operates as an "on/off" switch. This contrasts with analog circuits which operate on the basic principles of measuring and multiplying the actual real-time value of electrical signals.
Digital circuits typically operate in response to series or combinations of "binary" or "logical" signal levels. While the digital signals may assume a plurality of different levels or operative states, for simplicity, most digital systems operate in a simple "two-level" or "binary" logical manner. Simply stated, the digital signal assumes either a "logical one" or a "logical zero" state or level.
When digital logic circuits are combined with memory elements (e.g., flip flops among others), the system is described in terms of "sequential logic." A sequential logic circuit may be specified by a time sequence of inputs, outputs and internal states. Digital circuits are typically categorized as one or two types. The first type is known as an asynchronous circuit. In an asynchronous circuit, the output behavior of the circuit depends upon the order in which its input circuits change. The second type of sequential logic circuit is known as a synchronous circuit. In this latter type of circuit, the output may be defined from the knowledge of the circuit's input signals which affect the system's memory elements solely at discrete intervals of time. The preferred method by which this goal is achieved, is to utilize binary signals in a periodic train of "clock pulses." The clock pulses are typically distributed throughout the system in such a way that memory elements are affected by input signals solely in combination with the arrival of the synchronization clock pulse.
With the utilization of faster computers utilizing sequential logic, the timely distribution of clock pulses and other signals throughout the system becomes critical. For example, if the clock pulse becomes delayed, then a signal acting on the memory element may no longer be present, or may otherwise be changed by the time that the clock pulse reaches the memory element. Under these circumstances, the synchronous circuit may act in an unpredictable and/or undesirable manner. While the example of a delayed clock pulse will be illustrated herein, other signals which are dependent upon or otherwise affect timing might also benefit from utilization of the present invention. The present invention is not to be construed as limited by the examples presented herein.
Due to differences in the electrical characteristics of the various signal flow paths in a computer, the propagation speed of electrical signals via similar physical lengths of the signal flow paths varies. These differences often occur even in similar types of flow paths and even in the same type of flow paths originating from the same stock. Over the entire length of any individual signal flow path, the variation can create an unacceptable delay by causing a large difference in the time required for distribution of the clock pulses throughout the system. Therefore, continuing further with the illustration of distributed clock pulses, the variation may cause designers to expand the designed clock window of the system. More specifically, since the propagation time varies over the signal flow paths within the computer, the system designer must infer the longest propagation time when designing the system. However, as noted, even signal flow paths from the same stock exhibit a variance in electrical signal propagation time. Therefore, the clock window must be expanded further by the electrical propagation time tolerances of the signal flow path. As those skilled in the art will appreciate, by expanding the window, the computer is, in essence, forced to run slower.
Previously signal flow paths were cut to a nominal mechanical/physical length, however, due to the above described propagation delays from the electrical differences in the signal flow paths, there arises a need for a method and apparatus to create physical lengths of signal flow paths having an equal electrical length. Therefore, there arises a need for a method and apparatus for determining, selecting and optimizing the electrical length of a signal flow path.